from typing import Any
from flask import Blueprint, jsonify, request


from .... import __package__ as 小红狐模块名
from ....工具.日志工具 import 获取日志记录器
from ....核心.账号 import 保存账号状态, 新建账号, 获取全部账号名


日志 = 获取日志记录器(__name__)
账号蓝图 = Blueprint(
    "账号",
    __name__,
    url_prefix="/账号"
)

@账号蓝图.route("/账号名", methods=["GET"])
def 获取全部账号名路由():
    return jsonify(获取全部账号名())

# 新建账号
@账号蓝图.route("/账号名", methods=["POST"])
def 新建账号路由():
    if not request.is_json:
        return jsonify("请求头 Content-Type 必须是 application/json"), 400
    json = request.get_json(silent=True)
    if json is None:
        return jsonify("无效的 JSON 格式，请检查请求体"), 400
    if not isinstance(json, str):
        return jsonify("必须是字符串"), 400
    账号名: str = json
    try:
        新建账号(账号名)
        return jsonify("账号新建成功")
    except Exception as e:
        日志.警告(f"新建账号失败，账号名：“{账号名}”: {e}")
        return jsonify(f"新建账号失败，账号名：“{账号名}”: {e}"), 400

@账号蓝图.route("/保存账号状态/<account_name>", methods=["GET"])
def 保存账号状态路由(account_name: str):
    账号名: str = account_name
    try:
        保存账号状态(账号名)
        return jsonify("保存账号状态成功")
    except Exception as e:
        日志.警告(f"保存账号状态失败，账号名：“{账号名}”: {e}")
        return jsonify(f"保存账号状态失败!\n账号名“{账号名}”: {e}"), 500
